home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1995 August: Tool Chest / Dev.CD Aug 95 TC / Dev.CD Aug 95 TC.toast / Tool Chest / Interfaces / UniversalInterfaces 1.0 / CIncludes / ImageCompression.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-04-18  |  31.3 KB  |  852 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        ImageCompression.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __IMAGECOMPRESSION__
  13. #define __IMAGECOMPRESSION__
  14.  
  15. #ifndef __QUICKDRAW__
  16. #include <Quickdraw.h>
  17. /*    #include <Types.h>                                            */
  18. /*        #include <ConditionalMacros.h>                            */
  19. /*        #include <MixedMode.h>                                    */
  20. /*            #include <Traps.h>                                    */
  21. /*    #include <QuickdrawText.h>                                    */
  22. /*        #include <IntlResources.h>                                */
  23. #endif
  24.  
  25. #ifndef __QDOFFSCREEN__
  26. #include <QDOffscreen.h>
  27. #endif
  28.  
  29. #ifndef __TYPES__
  30. #endif
  31.  
  32. #ifndef __COMPONENTS__
  33. #include <Components.h>
  34. #endif
  35.  
  36. #ifndef __STANDARDFILE__
  37. #include <StandardFile.h>
  38. /*    #include <Dialogs.h>                                        */
  39. /*        #include <Windows.h>                                    */
  40. /*            #include <Events.h>                                    */
  41. /*                #include <OSUtils.h>                            */
  42. /*            #include <Controls.h>                                */
  43. /*                #include <Menus.h>                                */
  44. /*        #include <TextEdit.h>                                    */
  45. /*    #include <Files.h>                                            */
  46. /*        #include <SegLoad.h>                                    */
  47. #endif
  48.  
  49. #if defined(powerc) || defined (__powerc)
  50. #pragma options align=mac68k
  51. #endif
  52. struct MatrixRecord {
  53.     Fixed                        matrix[3][3];
  54. };
  55. #if defined(powerc) || defined(__powerc)
  56. #pragma options align=reset
  57. #endif
  58.  
  59. typedef struct MatrixRecord MatrixRecord;
  60.  
  61. typedef MatrixRecord *MatrixRecordPtr;
  62.  
  63. #if defined(powerc) || defined (__powerc)
  64. #pragma options align=mac68k
  65. #endif
  66. struct FixedPoint {
  67.     Fixed                        x;
  68.     Fixed                        y;
  69. };
  70. #if defined(powerc) || defined(__powerc)
  71. #pragma options align=reset
  72. #endif
  73.  
  74. typedef struct FixedPoint FixedPoint;
  75.  
  76. #if defined(powerc) || defined (__powerc)
  77. #pragma options align=mac68k
  78. #endif
  79. struct FixedRect {
  80.     Fixed                        left;
  81.     Fixed                        top;
  82.     Fixed                        right;
  83.     Fixed                        bottom;
  84. };
  85. #if defined(powerc) || defined(__powerc)
  86. #pragma options align=reset
  87. #endif
  88.  
  89. typedef struct FixedRect FixedRect;
  90.  
  91. #define codecInfoDoes1 (1L<<0)
  92.  
  93. #define codecInfoDoes2 (1L<<1)
  94.  
  95. #define codecInfoDoes4 (1L<<2)
  96.  
  97. #define codecInfoDoes8 (1L<<3)
  98.  
  99. #define codecInfoDoes16 (1L<<4)
  100.  
  101. #define codecInfoDoes32 (1L<<5)
  102.  
  103. #define codecInfoDoesDither (1L<<6)
  104.  
  105. #define codecInfoDoesStretch (1L<<7)
  106.  
  107. #define codecInfoDoesShrink (1L<<8)
  108.  
  109. #define codecInfoDoesMask (1L<<9)
  110.  
  111. #define codecInfoDoesTemporal (1L<<10)
  112.  
  113. #define codecInfoDoesDouble (1L<<11)
  114.  
  115. #define codecInfoDoesQuad (1L<<12)
  116.  
  117. #define codecInfoDoesHalf (1L<<13)
  118.  
  119. #define codecInfoDoesQuarter (1L<<14)
  120.  
  121. #define codecInfoDoesRotate (1L<<15)
  122.  
  123. #define codecInfoDoesHorizFlip (1L<<16)
  124.  
  125. #define codecInfoDoesVertFlip (1L<<17)
  126.  
  127. #define codecInfoDoesSkew (1L<<18)
  128.  
  129. #define codecInfoDoesBlend (1L<<19)
  130.  
  131. #define codecInfoDoesWarp (1L<<20)
  132.  
  133. #define codecInfoDoesRecompress (1L<<21)
  134.  
  135. #define codecInfoDoesSpool (1L<<22)
  136.  
  137. #define codecInfoDoesRateConstrain (1L<<23)
  138.  
  139. #define codecInfoDepth1 (1L<<0)
  140.  
  141. #define codecInfoDepth2 (1L<<1)
  142.  
  143. #define codecInfoDepth4 (1L<<2)
  144.  
  145. #define codecInfoDepth8 (1L<<3)
  146.  
  147. #define codecInfoDepth16 (1L<<4)
  148.  
  149. #define codecInfoDepth32 (1L<<5)
  150.  
  151. #define codecInfoDepth24 (1L<<6)
  152.  
  153. #define codecInfoDepth33 (1L<<7)
  154.  
  155. #define codecInfoDepth34 (1L<<8)
  156.  
  157. #define codecInfoDepth36 (1L<<9)
  158.  
  159. #define codecInfoDepth40 (1L<<10)
  160.  
  161. #define codecInfoStoresClut (1L<<11)
  162.  
  163. #define codecInfoDoesLossless (1L<<12)
  164.  
  165. #define codecInfoSequenceSensitive (1L<<13)
  166.  
  167. #define codecFlagUseImageBuffer (1L<<0)
  168.  
  169. #define codecFlagUseScreenBuffer (1L<<1)
  170.  
  171. #define codecFlagUpdatePrevious (1L<<2)
  172.  
  173. #define codecFlagNoScreenUpdate (1L<<3)
  174.  
  175. #define codecFlagWasCompressed (1L<<4)
  176.  
  177. #define codecFlagDontOffscreen (1L<<5)
  178.  
  179. #define codecFlagUpdatePreviousComp (1L<<6)
  180.  
  181. #define codecFlagForceKeyFrame (1L<<7)
  182.  
  183. #define codecFlagOnlyScreenUpdate (1L<<8)
  184.  
  185. #define codecFlagLiveGrab (1L<<9)
  186.  
  187. #define codecFlagDontUseNewImageBuffer (1L<<10)
  188.  
  189. #define codecFlagInterlaceUpdate (1L<<11)
  190.  
  191. #define codecFlagUsedNewImageBuffer (1L<<14)
  192.  
  193. #define codecFlagUsedImageBuffer (1L<<15)
  194.  
  195. #define codecMinimumDataSize 32768
  196.  
  197. #define compressorComponentType 'imco'
  198.  
  199. #define decompressorComponentType 'imdc'
  200.  
  201. typedef Component CompressorComponent;
  202.  
  203. typedef Component DecompressorComponent;
  204.  
  205. typedef Component CodecComponent;
  206.  
  207. #define anyCodec ((CodecComponent)0)
  208.  
  209. #define bestSpeedCodec ((CodecComponent)-1)
  210.  
  211. #define bestFidelityCodec ((CodecComponent)-2)
  212.  
  213. #define bestCompressionCodec ((CodecComponent)-3)
  214.  
  215. typedef long CodecType;
  216.  
  217. typedef unsigned short CodecFlags;
  218.  
  219. typedef unsigned long CodecQ;
  220.  
  221. #define codecLosslessQuality 0x400L
  222.  
  223. #define codecMaxQuality 0x3ffL
  224.  
  225. #define codecMinQuality 0x000L
  226.  
  227. #define codecLowQuality 0x100L
  228.  
  229. #define codecNormalQuality 0x200L
  230.  
  231. #define codecHighQuality 0x300L
  232.  
  233. typedef pascal OSErr (*ICMDataProcPtr)(Ptr *dataP, long bytesNeeded, long refcon);
  234.  
  235. enum {
  236.     uppICMDataProcInfo = kPascalStackBased
  237.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  238.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr*)))
  239.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  240.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  241. };
  242.  
  243. #if USESROUTINEDESCRIPTORS
  244. typedef UniversalProcPtr ICMDataUPP;
  245.  
  246. #define CallICMDataProc(userRoutine, dataP, bytesNeeded, refcon)        \
  247.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppICMDataProcInfo, (dataP), (bytesNeeded), (refcon))
  248. #define NewICMDataProc(userRoutine)        \
  249.         (ICMDataUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMDataProcInfo, GetCurrentISA())
  250. #else
  251. typedef ICMDataProcPtr ICMDataUPP;
  252.  
  253. #define CallICMDataProc(userRoutine, dataP, bytesNeeded, refcon)        \
  254.         (*(userRoutine))((dataP), (bytesNeeded), (refcon))
  255. #define NewICMDataProc(userRoutine)        \
  256.         (ICMDataUPP)(userRoutine)
  257. #endif
  258.  
  259. typedef pascal OSErr (*ICMFlushProcPtr)(Ptr data, long bytesAdded, long refcon);
  260.  
  261. enum {
  262.     uppICMFlushProcInfo = kPascalStackBased
  263.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  264.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Ptr)))
  265.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  266.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  267. };
  268.  
  269. #if USESROUTINEDESCRIPTORS
  270. typedef UniversalProcPtr ICMFlushUPP;
  271.  
  272. #define CallICMFlushProc(userRoutine, data, bytesAdded, refcon)        \
  273.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppICMFlushProcInfo, (data), (bytesAdded), (refcon))
  274. #define NewICMFlushProc(userRoutine)        \
  275.         (ICMFlushUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMFlushProcInfo, GetCurrentISA())
  276. #else
  277. typedef ICMFlushProcPtr ICMFlushUPP;
  278.  
  279. #define CallICMFlushProc(userRoutine, data, bytesAdded, refcon)        \
  280.         (*(userRoutine))((data), (bytesAdded), (refcon))
  281. #define NewICMFlushProc(userRoutine)        \
  282.         (ICMFlushUPP)(userRoutine)
  283. #endif
  284.  
  285. typedef pascal void (*ICMCompletionProcPtr)(OSErr result, short flags, long refcon);
  286.  
  287. enum {
  288.     uppICMCompletionProcInfo = kPascalStackBased
  289.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSErr)))
  290.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  291.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  292. };
  293.  
  294. #if USESROUTINEDESCRIPTORS
  295. typedef UniversalProcPtr ICMCompletionUPP;
  296.  
  297. #define CallICMCompletionProc(userRoutine, result, flags, refcon)        \
  298.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppICMCompletionProcInfo, (result), (flags), (refcon))
  299. #define NewICMCompletionProc(userRoutine)        \
  300.         (ICMCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMCompletionProcInfo, GetCurrentISA())
  301. #else
  302. typedef ICMCompletionProcPtr ICMCompletionUPP;
  303.  
  304. #define CallICMCompletionProc(userRoutine, result, flags, refcon)        \
  305.         (*(userRoutine))((result), (flags), (refcon))
  306. #define NewICMCompletionProc(userRoutine)        \
  307.         (ICMCompletionUPP)(userRoutine)
  308. #endif
  309.  
  310. #define codecCompletionSource (1<<0)
  311.  
  312. #define codecCompletionDest (1<<1)
  313.  
  314. typedef pascal OSErr (*ICMProgressProcPtr)(short message, Fixed completeness, long refcon);
  315.  
  316. enum {
  317.     uppICMProgressProcInfo = kPascalStackBased
  318.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  319.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(short)))
  320.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Fixed)))
  321.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  322. };
  323.  
  324. #if USESROUTINEDESCRIPTORS
  325. typedef UniversalProcPtr ICMProgressUPP;
  326.  
  327. #define CallICMProgressProc(userRoutine, message, completeness, refcon)        \
  328.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppICMProgressProcInfo, (message), (completeness), (refcon))
  329. #define NewICMProgressProc(userRoutine)        \
  330.         (ICMProgressUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMProgressProcInfo, GetCurrentISA())
  331. #else
  332. typedef ICMProgressProcPtr ICMProgressUPP;
  333.  
  334. #define CallICMProgressProc(userRoutine, message, completeness, refcon)        \
  335.         (*(userRoutine))((message), (completeness), (refcon))
  336. #define NewICMProgressProc(userRoutine)        \
  337.         (ICMProgressUPP)(userRoutine)
  338. #endif
  339.  
  340. #define codecProgressOpen 0
  341.  
  342. #define codecProgressUpdatePercent 1
  343.  
  344. #define codecProgressClose 2
  345.  
  346. typedef pascal void (*StdPixProcPtr)(PixMap *src, Rect *srcRect, MatrixRecord *matrix, short mode, RgnHandle mask, PixMap *matte, Rect *matteRect, short flags);
  347.  
  348. enum {
  349.     uppStdPixProcInfo = kPascalStackBased
  350.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(PixMap*)))
  351.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Rect*)))
  352.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(MatrixRecord*)))
  353.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(short)))
  354.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(RgnHandle)))
  355.          | STACK_ROUTINE_PARAMETER(6, SIZE_CODE(sizeof(PixMap*)))
  356.          | STACK_ROUTINE_PARAMETER(7, SIZE_CODE(sizeof(Rect*)))
  357.          | STACK_ROUTINE_PARAMETER(8, SIZE_CODE(sizeof(short)))
  358. };
  359.  
  360. #if USESROUTINEDESCRIPTORS
  361. typedef UniversalProcPtr StdPixUPP;
  362.  
  363. #define CallStdPixProc(userRoutine, src, srcRect, matrix, mode, mask, matte, matteRect, flags)        \
  364.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppStdPixProcInfo, (src), (srcRect), (matrix), (mode), (mask), (matte), (matteRect), (flags))
  365. #define NewStdPixProc(userRoutine)        \
  366.         (StdPixUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppStdPixProcInfo, GetCurrentISA())
  367. #else
  368. typedef StdPixProcPtr StdPixUPP;
  369.  
  370. #define CallStdPixProc(userRoutine, src, srcRect, matrix, mode, mask, matte, matteRect, flags)        \
  371.         (*(userRoutine))((src), (srcRect), (matrix), (mode), (mask), (matte), (matteRect), (flags))
  372. #define NewStdPixProc(userRoutine)        \
  373.         (StdPixUPP)(userRoutine)
  374. #endif
  375.  
  376. typedef pascal void (*ICMAlignmentProcPtr)(Rect *rp, long refcon);
  377.  
  378. enum {
  379.     uppICMAlignmentProcInfo = kPascalStackBased
  380.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Rect*)))
  381.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  382. };
  383.  
  384. #if USESROUTINEDESCRIPTORS
  385. typedef UniversalProcPtr ICMAlignmentUPP;
  386.  
  387. #define CallICMAlignmentProc(userRoutine, rp, refcon)        \
  388.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppICMAlignmentProcInfo, (rp), (refcon))
  389. #define NewICMAlignmentProc(userRoutine)        \
  390.         (ICMAlignmentUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppICMAlignmentProcInfo, GetCurrentISA())
  391. #else
  392. typedef ICMAlignmentProcPtr ICMAlignmentUPP;
  393.  
  394. #define CallICMAlignmentProc(userRoutine, rp, refcon)        \
  395.         (*(userRoutine))((rp), (refcon))
  396. #define NewICMAlignmentProc(userRoutine)        \
  397.         (ICMAlignmentUPP)(userRoutine)
  398. #endif
  399.  
  400. typedef long ImageSequence;
  401.  
  402. #if defined(powerc) || defined (__powerc)
  403. #pragma options align=mac68k
  404. #endif
  405. struct ICMProgressProcRecord {
  406.     ICMProgressUPP                progressProc;
  407.     long                        progressRefCon;
  408. };
  409. #if defined(powerc) || defined(__powerc)
  410. #pragma options align=reset
  411. #endif
  412.  
  413. typedef struct ICMProgressProcRecord ICMProgressProcRecord;
  414.  
  415. typedef ICMProgressProcRecord *ICMProgressProcRecordPtr;
  416.  
  417. #if defined(powerc) || defined (__powerc)
  418. #pragma options align=mac68k
  419. #endif
  420. struct ICMCompletionProcRecord {
  421.     ICMCompletionUPP            completionProc;
  422.     long                        completionRefCon;
  423. };
  424. #if defined(powerc) || defined(__powerc)
  425. #pragma options align=reset
  426. #endif
  427.  
  428. typedef struct ICMCompletionProcRecord ICMCompletionProcRecord;
  429.  
  430. typedef ICMCompletionProcRecord *ICMCompletionProcRecordPtr;
  431.  
  432. #if defined(powerc) || defined (__powerc)
  433. #pragma options align=mac68k
  434. #endif
  435. struct ICMDataProcRecord {
  436.     ICMDataUPP                    dataProc;
  437.     long                        dataRefCon;
  438. };
  439. #if defined(powerc) || defined(__powerc)
  440. #pragma options align=reset
  441. #endif
  442.  
  443. typedef struct ICMDataProcRecord ICMDataProcRecord;
  444.  
  445. typedef ICMDataProcRecord *ICMDataProcRecordPtr;
  446.  
  447. #if defined(powerc) || defined (__powerc)
  448. #pragma options align=mac68k
  449. #endif
  450. struct ICMFlushProcRecord {
  451.     ICMFlushUPP                    flushProc;
  452.     long                        flushRefCon;
  453. };
  454. #if defined(powerc) || defined(__powerc)
  455. #pragma options align=reset
  456. #endif
  457.  
  458. typedef struct ICMFlushProcRecord ICMFlushProcRecord;
  459.  
  460. typedef ICMFlushProcRecord *ICMFlushProcRecordPtr;
  461.  
  462. #if defined(powerc) || defined (__powerc)
  463. #pragma options align=mac68k
  464. #endif
  465. struct ICMAlignmentProcRecord {
  466.     ICMAlignmentUPP                alignmentProc;
  467.     long                        alignmentRefCon;
  468. };
  469. #if defined(powerc) || defined(__powerc)
  470. #pragma options align=reset
  471. #endif
  472.  
  473. typedef struct ICMAlignmentProcRecord ICMAlignmentProcRecord;
  474.  
  475. typedef ICMAlignmentProcRecord *ICMAlignmentProcRecordPtr;
  476.  
  477. #if defined(powerc) || defined (__powerc)
  478. #pragma options align=mac68k
  479. #endif
  480. struct DataRateParams {
  481.     long                        dataRate;
  482.     long                        dataOverrun;
  483.     long                        frameDuration;
  484.     long                        keyFrameRate;
  485.     CodecQ                        minSpatialQuality;
  486.     CodecQ                        minTemporalQuality;
  487. };
  488. #if defined(powerc) || defined(__powerc)
  489. #pragma options align=reset
  490. #endif
  491.  
  492. typedef struct DataRateParams DataRateParams;
  493.  
  494. typedef DataRateParams *DataRateParamsPtr;
  495.  
  496. #if defined(powerc) || defined (__powerc)
  497. #pragma options align=mac68k
  498. #endif
  499. struct ImageDescription {
  500.     long                        idSize;
  501.     CodecType                    cType;
  502.     long                        resvd1;
  503.     short                        resvd2;
  504.     short                        dataRefIndex;
  505.     short                        version;
  506.     short                        revisionLevel;
  507.     long                        vendor;
  508.     CodecQ                        temporalQuality;
  509.     CodecQ                        spatialQuality;
  510.     short                        width;
  511.     short                        height;
  512.     Fixed                        hRes;
  513.     Fixed                        vRes;
  514.     long                        dataSize;
  515.     short                        frameCount;
  516.     Str31                        name;
  517.     short                        depth;
  518.     short                        clutID;
  519. };
  520. #if defined(powerc) || defined(__powerc)
  521. #pragma options align=reset
  522. #endif
  523.  
  524. typedef struct ImageDescription ImageDescription;
  525.  
  526. typedef ImageDescription *ImageDescriptionPtr;
  527.  
  528. typedef ImageDescription **ImageDescriptionHandle;
  529.  
  530. #if defined(powerc) || defined (__powerc)
  531. #pragma options align=mac68k
  532. #endif
  533. struct CodecInfo {
  534.     Str31                        typeName;
  535.     short                        version;
  536.     short                        revisionLevel;
  537.     long                        vendor;
  538.     long                        decompressFlags;
  539.     long                        compressFlags;
  540.     long                        formatFlags;
  541.     unsigned char                compressionAccuracy;
  542.     unsigned char                decompressionAccuracy;
  543.     unsigned short                compressionSpeed;
  544.     unsigned short                decompressionSpeed;
  545.     unsigned char                compressionLevel;
  546.     char                        resvd;
  547.     short                        minimumHeight;
  548.     short                        minimumWidth;
  549.     short                        decompressPipelineLatency;
  550.     short                        compressPipelineLatency;
  551.     long                        privateData;
  552. };
  553. #if defined(powerc) || defined(__powerc)
  554. #pragma options align=reset
  555. #endif
  556.  
  557. typedef struct CodecInfo CodecInfo;
  558.  
  559. #if defined(powerc) || defined (__powerc)
  560. #pragma options align=mac68k
  561. #endif
  562. struct CodecNameSpec {
  563.     CodecComponent                codec;
  564.     CodecType                    cType;
  565.     Str31                        typeName;
  566.     Handle                        name;
  567. };
  568. #if defined(powerc) || defined(__powerc)
  569. #pragma options align=reset
  570. #endif
  571.  
  572. typedef struct CodecNameSpec CodecNameSpec;
  573.  
  574. #if defined(powerc) || defined (__powerc)
  575. #pragma options align=mac68k
  576. #endif
  577. struct CodecNameSpecList {
  578.     short                        count;
  579.     CodecNameSpec                list[1];
  580. };
  581. #if defined(powerc) || defined(__powerc)
  582. #pragma options align=reset
  583. #endif
  584.  
  585. typedef struct CodecNameSpecList CodecNameSpecList;
  586.  
  587. typedef CodecNameSpecList *CodecNameSpecListPtr;
  588.  
  589. #define defaultDither 0
  590.  
  591. #define forceDither 1
  592.  
  593. #define suppressDither 2
  594.  
  595. #define useColorMatching 4
  596.  
  597. #ifdef __cplusplus
  598. extern "C" {
  599. #endif
  600.  
  601. extern pascal OSErr CodecManagerVersion(long *version)
  602.  TWOWORDINLINE(0x7000, 0xAAA3);
  603. extern pascal OSErr GetCodecNameList(CodecNameSpecListPtr *list, short showAll)
  604.  TWOWORDINLINE(0x7001, 0xAAA3);
  605. extern pascal OSErr DisposeCodecNameList(CodecNameSpecListPtr list)
  606.  TWOWORDINLINE(0x700F, 0xAAA3);
  607. extern pascal OSErr GetCodecInfo(CodecInfo *info, CodecType cType, CodecComponent codec)
  608.  TWOWORDINLINE(0x7003, 0xAAA3);
  609. extern pascal OSErr GetMaxCompressionSize(PixMapHandle src, const Rect *srcRect, short colorDepth, CodecQ quality, CodecType cType, CompressorComponent codec, long *size)
  610.  TWOWORDINLINE(0x7004, 0xAAA3);
  611. extern pascal OSErr GetCompressionTime(PixMapHandle src, const Rect *srcRect, short colorDepth, CodecType cType, CompressorComponent codec, CodecQ *spatialQuality, CodecQ *temporalQuality, unsigned long *compressTime)
  612.  TWOWORDINLINE(0x7005, 0xAAA3);
  613. extern pascal OSErr CompressImage(PixMapHandle src, const Rect *srcRect, CodecQ quality, CodecType cType, ImageDescriptionHandle desc, Ptr data)
  614.  TWOWORDINLINE(0x7006, 0xAAA3);
  615. extern pascal OSErr FCompressImage(PixMapHandle src, const Rect *srcRect, short colorDepth, CodecQ quality, CodecType cType, CompressorComponent codec, CTabHandle clut, CodecFlags flags, long bufferSize, ICMFlushProcRecordPtr flushProc, ICMProgressProcRecordPtr progressProc, ImageDescriptionHandle desc, Ptr data)
  616.  TWOWORDINLINE(0x7007, 0xAAA3);
  617. extern pascal OSErr DecompressImage(Ptr data, ImageDescriptionHandle desc, PixMapHandle dst, const Rect *srcRect, const Rect *dstRect, short mode, RgnHandle mask)
  618.  TWOWORDINLINE(0x7008, 0xAAA3);
  619. extern pascal OSErr FDecompressImage(Ptr data, ImageDescriptionHandle desc, PixMapHandle dst, const Rect *srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, PixMapHandle matte, const Rect *matteRect, CodecQ accuracy, DecompressorComponent codec, long bufferSize, ICMDataProcRecordPtr dataProc, ICMProgressProcRecordPtr progressProc)
  620.  TWOWORDINLINE(0x7009, 0xAAA3);
  621. extern pascal OSErr CompressSequenceBegin(ImageSequence *seqID, PixMapHandle src, PixMapHandle prev, const Rect *srcRect, const Rect *prevRect, short colorDepth, CodecType cType, CompressorComponent codec, CodecQ spatialQuality, CodecQ temporalQuality, long keyFrameRate, CTabHandle clut, CodecFlags flags, ImageDescriptionHandle desc)
  622.  TWOWORDINLINE(0x700A, 0xAAA3);
  623. extern pascal OSErr CompressSequenceFrame(ImageSequence seqID, PixMapHandle src, const Rect *srcRect, CodecFlags flags, Ptr data, long *dataSize, unsigned char *similarity, ICMCompletionProcRecordPtr asyncCompletionProc)
  624.  TWOWORDINLINE(0x700B, 0xAAA3);
  625. extern pascal OSErr DecompressSequenceBegin(ImageSequence *seqID, ImageDescriptionHandle desc, CGrafPtr port, GDHandle gdh, const Rect *srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, CodecFlags flags, CodecQ accuracy, DecompressorComponent codec)
  626.  TWOWORDINLINE(0x700D, 0xAAA3);
  627. extern pascal OSErr DecompressSequenceBeginS(ImageSequence *seqID, ImageDescriptionHandle desc, Ptr data, long dataSize, CGrafPtr port, GDHandle gdh, const Rect *srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, CodecFlags flags, CodecQ accuracy, DecompressorComponent codec)
  628.  FOURWORDINLINE(0x203C, 0x30, 0x5D, 0xAAA3);
  629. extern pascal OSErr DecompressSequenceFrame(ImageSequence seqID, Ptr data, CodecFlags inFlags, CodecFlags *outFlags, ICMCompletionProcRecordPtr asyncCompletionProc)
  630.  TWOWORDINLINE(0x700E, 0xAAA3);
  631. extern pascal OSErr DecompressSequenceFrameS(ImageSequence seqID, Ptr data, long dataSize, CodecFlags inFlags, CodecFlags *outFlags, ICMCompletionProcRecordPtr asyncCompletionProc)
  632.  FOURWORDINLINE(0x203C, 0x16, 0x47, 0xAAA3);
  633. extern pascal OSErr SetDSequenceMatrix(ImageSequence seqID, MatrixRecordPtr matrix)
  634.  TWOWORDINLINE(0x7010, 0xAAA3);
  635. extern pascal OSErr SetDSequenceMatte(ImageSequence seqID, PixMapHandle matte, const Rect *matteRect)
  636.  TWOWORDINLINE(0x7011, 0xAAA3);
  637. extern pascal OSErr SetDSequenceMask(ImageSequence seqID, RgnHandle mask)
  638.  TWOWORDINLINE(0x7012, 0xAAA3);
  639. extern pascal OSErr SetDSequenceTransferMode(ImageSequence seqID, short mode, const RGBColor *opColor)
  640.  TWOWORDINLINE(0x7013, 0xAAA3);
  641. extern pascal OSErr SetDSequenceDataProc(ImageSequence seqID, ICMDataProcRecordPtr dataProc, long bufferSize)
  642.  TWOWORDINLINE(0x7014, 0xAAA3);
  643. extern pascal OSErr SetDSequenceAccuracy(ImageSequence seqID, CodecQ accuracy)
  644.  TWOWORDINLINE(0x7034, 0xAAA3);
  645. extern pascal OSErr SetDSequenceSrcRect(ImageSequence seqID, const Rect *srcRect)
  646.  TWOWORDINLINE(0x7035, 0xAAA3);
  647. extern pascal OSErr GetDSequenceImageBuffer(ImageSequence seqID, GWorldPtr *gworld)
  648.  TWOWORDINLINE(0x7015, 0xAAA3);
  649. extern pascal OSErr GetDSequenceScreenBuffer(ImageSequence seqID, GWorldPtr *gworld)
  650.  TWOWORDINLINE(0x7016, 0xAAA3);
  651. extern pascal OSErr SetCSequenceQuality(ImageSequence seqID, CodecQ spatialQuality, CodecQ temporalQuality)
  652.  TWOWORDINLINE(0x7017, 0xAAA3);
  653. extern pascal OSErr SetCSequencePrev(ImageSequence seqID, PixMapHandle prev, const Rect *prevRect)
  654.  TWOWORDINLINE(0x7018, 0xAAA3);
  655. extern pascal OSErr SetCSequenceFlushProc(ImageSequence seqID, ICMFlushProcRecordPtr flushProc, long bufferSize)
  656.  TWOWORDINLINE(0x7033, 0xAAA3);
  657. extern pascal OSErr SetCSequenceKeyFrameRate(ImageSequence seqID, long keyframerate)
  658.  TWOWORDINLINE(0x7036, 0xAAA3);
  659. extern pascal OSErr GetCSequenceKeyFrameRate(ImageSequence seqID, long *keyframerate)
  660.  FOURWORDINLINE(0x203C, 0x8, 0x4B, 0xAAA3);
  661. extern pascal OSErr GetCSequencePrevBuffer(ImageSequence seqID, GWorldPtr *gworld)
  662.  TWOWORDINLINE(0x7019, 0xAAA3);
  663. extern pascal OSErr CDSequenceBusy(ImageSequence seqID)
  664.  TWOWORDINLINE(0x701A, 0xAAA3);
  665. extern pascal OSErr CDSequenceEnd(ImageSequence seqID)
  666.  TWOWORDINLINE(0x701B, 0xAAA3);
  667. extern pascal OSErr GetCompressedImageSize(ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, long *dataSize)
  668.  TWOWORDINLINE(0x701C, 0xAAA3);
  669. extern pascal OSErr GetSimilarity(PixMapHandle src, const Rect *srcRect, ImageDescriptionHandle desc, Ptr data, Fixed *similarity)
  670.  TWOWORDINLINE(0x701D, 0xAAA3);
  671. extern pascal OSErr GetImageDescriptionCTable(ImageDescriptionHandle desc, CTabHandle *ctable)
  672.  TWOWORDINLINE(0x701E, 0xAAA3);
  673. extern pascal OSErr SetImageDescriptionCTable(ImageDescriptionHandle desc, CTabHandle ctable)
  674.  TWOWORDINLINE(0x701F, 0xAAA3);
  675. extern pascal OSErr GetImageDescriptionExtension(ImageDescriptionHandle desc, Handle *extension, long type, long index)
  676.  TWOWORDINLINE(0x7020, 0xAAA3);
  677. extern pascal OSErr SetImageDescriptionExtension(ImageDescriptionHandle desc, Handle extension, long type)
  678.  TWOWORDINLINE(0x7021, 0xAAA3);
  679. extern pascal OSErr RemoveImageDescriptionExtension(ImageDescription **desc, long type, long index)
  680.  FOURWORDINLINE(0x203C, 0xC, 0x3A, 0xAAA3);
  681. extern pascal OSErr CountImageDescriptionExtensionType(ImageDescription **desc, long type, long *count)
  682.  FOURWORDINLINE(0x203C, 0xC, 0x3B, 0xAAA3);
  683. extern pascal OSErr GetNextImageDescriptionExtensionType(ImageDescription **desc, long *type)
  684.  FOURWORDINLINE(0x203C, 0x8, 0x3C, 0xAAA3);
  685. extern pascal OSErr FindCodec(CodecType cType, CodecComponent specCodec, CompressorComponent *compressor, DecompressorComponent *decompressor)
  686.  TWOWORDINLINE(0x7023, 0xAAA3);
  687. extern pascal OSErr CompressPicture(PicHandle srcPicture, PicHandle dstPicture, CodecQ quality, CodecType cType)
  688.  TWOWORDINLINE(0x7024, 0xAAA3);
  689. extern pascal OSErr FCompressPicture(PicHandle srcPicture, PicHandle dstPicture, short colorDepth, CTabHandle clut, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec)
  690.  TWOWORDINLINE(0x7025, 0xAAA3);
  691. extern pascal OSErr CompressPictureFile(short srcRefNum, short dstRefNum, CodecQ quality, CodecType cType)
  692.  TWOWORDINLINE(0x7026, 0xAAA3);
  693. extern pascal OSErr FCompressPictureFile(short srcRefNum, short dstRefNum, short colorDepth, CTabHandle clut, CodecQ quality, short doDither, short compressAgain, ICMProgressProcRecordPtr progressProc, CodecType cType, CompressorComponent codec)
  694.  TWOWORDINLINE(0x7027, 0xAAA3);
  695. extern pascal OSErr GetPictureFileHeader(short refNum, Rect *frame, OpenCPicParams *header)
  696.  TWOWORDINLINE(0x7028, 0xAAA3);
  697. extern pascal OSErr DrawPictureFile(short refNum, const Rect *frame, ICMProgressProcRecordPtr progressProc)
  698.  TWOWORDINLINE(0x7029, 0xAAA3);
  699. extern pascal OSErr DrawTrimmedPicture(PicHandle srcPicture, const Rect *frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc)
  700.  TWOWORDINLINE(0x702E, 0xAAA3);
  701. extern pascal OSErr DrawTrimmedPictureFile(short srcRefnum, const Rect *frame, RgnHandle trimMask, short doDither, ICMProgressProcRecordPtr progressProc)
  702.  TWOWORDINLINE(0x702F, 0xAAA3);
  703. extern pascal OSErr MakeThumbnailFromPicture(PicHandle picture, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc)
  704.  TWOWORDINLINE(0x702A, 0xAAA3);
  705. extern pascal OSErr MakeThumbnailFromPictureFile(short refNum, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc)
  706.  TWOWORDINLINE(0x702B, 0xAAA3);
  707. extern pascal OSErr MakeThumbnailFromPixMap(PixMapHandle src, const Rect *srcRect, short colorDepth, PicHandle thumbnail, ICMProgressProcRecordPtr progressProc)
  708.  TWOWORDINLINE(0x702C, 0xAAA3);
  709. extern pascal OSErr TrimImage(ImageDescriptionHandle desc, Ptr inData, long inBufferSize, ICMDataProcRecordPtr dataProc, Ptr outData, long outBufferSize, ICMFlushProcRecordPtr flushProc, Rect *trimRect, ICMProgressProcRecordPtr progressProc)
  710.  TWOWORDINLINE(0x702D, 0xAAA3);
  711. extern pascal OSErr ConvertImage(ImageDescriptionHandle srcDD, Ptr srcData, short colorDepth, CTabHandle clut, CodecQ accuracy, CodecQ quality, CodecType cType, CodecComponent codec, ImageDescriptionHandle dstDD, Ptr dstData)
  712.  TWOWORDINLINE(0x7030, 0xAAA3);
  713. extern pascal OSErr GetCompressedPixMapInfo(PixMapPtr pix, ImageDescriptionHandle *desc, Ptr *data, long *bufferSize, ICMDataProcRecord *dataProc, ICMProgressProcRecord *progressProc)
  714.  TWOWORDINLINE(0x7037, 0xAAA3);
  715. extern pascal OSErr SetCompressedPixMapInfo(PixMapPtr pix, ImageDescriptionHandle desc, Ptr data, long bufferSize, ICMDataProcRecordPtr dataProc, ICMProgressProcRecordPtr progressProc)
  716.  TWOWORDINLINE(0x7038, 0xAAA3);
  717. extern pascal void StdPix(PixMapPtr src, const Rect *srcRect, MatrixRecordPtr matrix, short mode, RgnHandle mask, PixMapPtr matte, const Rect *matteRect, short flags)
  718.  TWOWORDINLINE(0x700C, 0xAAA3);
  719. extern pascal OSErr TransformRgn(MatrixRecordPtr matrix, RgnHandle rgn)
  720.  TWOWORDINLINE(0x7039, 0xAAA3);
  721. extern pascal void SFGetFilePreview(Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, SFTypeList typeList, DlgHookUPP dlgHook, SFReply *reply)
  722.  THREEWORDINLINE(0x303C, 0x41, 0xAAA3);
  723. extern pascal void SFPGetFilePreview(Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, short numTypes, SFTypeList typeList, DlgHookUPP dlgHook, SFReply *reply, short dlgID, ModalFilterUPP filterProc)
  724.  THREEWORDINLINE(0x303C, 0x42, 0xAAA3);
  725. extern pascal void StandardGetFilePreview(FileFilterUPP fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply)
  726.  THREEWORDINLINE(0x303C, 0x43, 0xAAA3);
  727. extern pascal void CustomGetFilePreview(FileFilterYDUPP fileFilter, short numTypes, SFTypeList typeList, StandardFileReply *reply, short dlgID, Point where, DlgHookYDUPP dlgHook, ModalFilterYDUPP filterProc, short *activeList, ActivateYDUPP activateProc, void *yourDataPtr)
  728.  THREEWORDINLINE(0x303C, 0x44, 0xAAA3);
  729. extern pascal OSErr MakeFilePreview(short resRefNum, ICMProgressProcRecordPtr progress)
  730.  THREEWORDINLINE(0x303C, 0x45, 0xAAA3);
  731. extern pascal OSErr AddFilePreview(short resRefNum, OSType previewType, Handle previewData)
  732.  THREEWORDINLINE(0x303C, 0x46, 0xAAA3);
  733. #ifdef __cplusplus
  734. }
  735. #endif
  736.  
  737. enum  {
  738.     sfpItemPreviewAreaUser        = 11,
  739.     sfpItemPreviewStaticText    = 12,
  740.     sfpItemPreviewDividerUser    = 13,
  741.     sfpItemCreatePreviewButton    = 14,
  742.     sfpItemShowPreviewButton    = 15
  743. };
  744.  
  745. #if defined(powerc) || defined (__powerc)
  746. #pragma options align=mac68k
  747. #endif
  748. struct PreviewResourceRecord {
  749.     unsigned long                modDate;
  750.     short                        version;
  751.     OSType                        resType;
  752.     short                        resID;
  753. };
  754. #if defined(powerc) || defined(__powerc)
  755. #pragma options align=reset
  756. #endif
  757.  
  758. typedef struct PreviewResourceRecord PreviewResourceRecord;
  759.  
  760. typedef PreviewResourceRecord *PreviewResourcePtr, **PreviewResource;
  761.  
  762. #ifdef __cplusplus
  763. extern "C" {
  764. #endif
  765.  
  766. extern pascal void AlignScreenRect(Rect *rp, ICMAlignmentProcRecordPtr alignmentProc)
  767.  FOURWORDINLINE(0x203C, 0x8, 0x4C, 0xAAA3);
  768. extern pascal void AlignWindow(WindowPtr wp, Boolean front, const Rect *alignmentRect, ICMAlignmentProcRecordPtr alignmentProc)
  769.  FOURWORDINLINE(0x203C, 0xE, 0x4D, 0xAAA3);
  770. extern pascal void DragAlignedWindow(WindowPtr wp, Point startPt, Rect *boundsRect, Rect *alignmentRect, ICMAlignmentProcRecordPtr alignmentProc)
  771.  FOURWORDINLINE(0x203C, 0x14, 0x4E, 0xAAA3);
  772. extern pascal long DragAlignedGrayRgn(RgnHandle theRgn, Point startPt, Rect *boundsRect, Rect *slopRect, short axis, UniversalProcPtr actionProc, Rect *alignmentRect, ICMAlignmentProcRecordPtr alignmentProc)
  773.  FOURWORDINLINE(0x203C, 0x1E, 0x4F, 0xAAA3);
  774. extern pascal OSErr SetCSequenceDataRateParams(ImageSequence seqID, DataRateParamsPtr params)
  775.  FOURWORDINLINE(0x203C, 0x8, 0x50, 0xAAA3);
  776. extern pascal OSErr SetCSequenceFrameNumber(ImageSequence seqID, long frameNumber)
  777.  FOURWORDINLINE(0x203C, 0x8, 0x51, 0xAAA3);
  778. extern pascal QDErr NewImageGWorld(GWorldPtr *gworld, ImageDescription **idh, GWorldFlags flags)
  779.  FOURWORDINLINE(0x203C, 0xC, 0x52, 0xAAA3);
  780. extern pascal OSErr GetCSequenceDataRateParams(ImageSequence seqID, DataRateParamsPtr params)
  781.  FOURWORDINLINE(0x203C, 0x8, 0x53, 0xAAA3);
  782. extern pascal OSErr GetCSequenceFrameNumber(ImageSequence seqID, long *frameNumber)
  783.  FOURWORDINLINE(0x203C, 0x8, 0x54, 0xAAA3);
  784. extern pascal OSErr GetBestDeviceRect(GDHandle *gdh, Rect *rp)
  785.  FOURWORDINLINE(0x203C, 0x8, 0x55, 0xAAA3);
  786. extern pascal OSErr SetSequenceProgressProc(ImageSequence seqID, ICMProgressProcRecord *progressProc)
  787.  FOURWORDINLINE(0x203C, 0x8, 0x56, 0xAAA3);
  788. extern pascal OSErr GDHasScale(GDHandle gdh, short depth, Fixed *scale)
  789.  FOURWORDINLINE(0x203C, 0xA, 0x5A, 0xAAA3);
  790. extern pascal OSErr GDGetScale(GDHandle gdh, Fixed *scale, short *flags)
  791.  FOURWORDINLINE(0x203C, 0xC, 0x5B, 0xAAA3);
  792. extern pascal OSErr GDSetScale(GDHandle gdh, Fixed scale, short flags)
  793.  FOURWORDINLINE(0x203C, 0xA, 0x5C, 0xAAA3);
  794. #ifdef __cplusplus
  795. }
  796. #endif
  797.  
  798. enum  {
  799.     identityMatrixType            = 0x00,
  800.     translateMatrixType            = 0x01,
  801.     scaleMatrixType                = 0x02,
  802.     scaleTranslateMatrixType    = 0x03,
  803.     linearMatrixType            = 0x04,
  804.     linearTranslateMatrixType    = 0x05,
  805.     perspectiveMatrixType        = 0x06
  806. };
  807.  
  808. typedef unsigned short MatrixFlags;
  809.  
  810. #ifdef __cplusplus
  811. extern "C" {
  812. #endif
  813.  
  814. extern pascal short GetMatrixType(MatrixRecord *m)
  815.  TWOWORDINLINE(0x7014, 0xABC2);
  816. extern pascal void CopyMatrix(MatrixRecord *m1, MatrixRecord *m2)
  817.  TWOWORDINLINE(0x7020, 0xABC2);
  818. extern pascal Boolean EqualMatrix(const MatrixRecord *m1, const MatrixRecord *m2)
  819.  TWOWORDINLINE(0x7021, 0xABC2);
  820. extern pascal void SetIdentityMatrix(MatrixRecord *matrix)
  821.  TWOWORDINLINE(0x7015, 0xABC2);
  822. extern pascal void TranslateMatrix(MatrixRecord *m, Fixed deltaH, Fixed deltaV)
  823.  TWOWORDINLINE(0x7019, 0xABC2);
  824. extern pascal void RotateMatrix(MatrixRecord *m, Fixed degrees, Fixed aboutX, Fixed aboutY)
  825.  TWOWORDINLINE(0x7016, 0xABC2);
  826. extern pascal void ScaleMatrix(MatrixRecord *m, Fixed scaleX, Fixed scaleY, Fixed aboutX, Fixed aboutY)
  827.  TWOWORDINLINE(0x7017, 0xABC2);
  828. extern pascal void SkewMatrix(MatrixRecord *m, Fixed skewX, Fixed skewY, Fixed aboutX, Fixed aboutY)
  829.  TWOWORDINLINE(0x7018, 0xABC2);
  830. extern pascal OSErr TransformFixedPoints(MatrixRecord *m, FixedPoint *fpt, long count)
  831.  TWOWORDINLINE(0x7022, 0xABC2);
  832. extern pascal OSErr TransformPoints(MatrixRecord *mp, Point *pt1, long count)
  833.  TWOWORDINLINE(0x7023, 0xABC2);
  834. extern pascal Boolean TransformFixedRect(MatrixRecord *m, FixedRect *fr, FixedPoint *fpp)
  835.  TWOWORDINLINE(0x7024, 0xABC2);
  836. extern pascal Boolean TransformRect(MatrixRecord *m, Rect *r, FixedPoint *fpp)
  837.  TWOWORDINLINE(0x7025, 0xABC2);
  838. extern pascal Boolean InverseMatrix(MatrixRecord *m, MatrixRecord *im)
  839.  TWOWORDINLINE(0x701C, 0xABC2);
  840. extern pascal void ConcatMatrix(MatrixRecord *a, MatrixRecord *b)
  841.  TWOWORDINLINE(0x701B, 0xABC2);
  842. extern pascal void RectMatrix(MatrixRecord *matrix, Rect *srcRect, Rect *dstRect)
  843.  TWOWORDINLINE(0x701E, 0xABC2);
  844. extern pascal void MapMatrix(MatrixRecord *matrix, Rect *fromRect, Rect *toRect)
  845.  TWOWORDINLINE(0x701D, 0xABC2);
  846. #ifdef __cplusplus
  847. }
  848. #endif
  849.  
  850. #endif
  851.  
  852.